﻿using Newtonsoft.Json.Linq;
using QbservableCore.Client;
using QbservableCore.Serialization;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Linq.Expressions;
using System.Reactive.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace QbservableHubTests.Client
{
    public class QZ<T> : QbservableTestProxy<T>
    { 
        public QZ(string key)
            : base(key)
        {
        }
    }

    public class QbservableTestProxy<T> : QbservableBase<T>
    {
 
        public QbservableTestProxy(string key)
            : base(key)
        {
        }

        protected QbservableTestProxy(Expression expression)
            : base(expression) { }

        #region QbservableBase Members

        public override IDisposable Subscribe(IObserver<T> observer)
        {
            throw new NotImplementedException();
        }

        protected override IQbservable<TResult> OnCreate<TResult>(Expression expression)
        {
            return new QbservableTestProxy<TResult>(expression);
        }

        #endregion // QbservableBase Members
    }
}
